#随机模块
from numpy import random
#导入numpy模块
import numpy as np
#删除文件模块
import os
# 判断文件是否存在，存在则删除
if os.path.exists("ips.txt"):
    os.remove("ips.txt")

with open("ips.txt","a+") as fp:
#将ip_head（网络号）和i（主机号）拼接成ip地址
    ip_head = "172.25.254."
    ip_list_temp = []
    for i in range(1,256):
        ip_list_temp.append(f"{ip_head}{i}\n")
#将ip_list_temp地址表用numpy数组存储,然后随机生成120000个ip地址
    ip_list = np.array(ip_list_temp)
    for i in range(120000):
        fp.write(random.choice(ip_list))
#将光标移动到第一位
    fp.seek(0)
#将所有ip出现频率用字典记录，初始值都为0
    count = {}
    for i in range(255):
        count[f'172.25.254.{i}'] = 0
#遍历文件，统计ip出现次数
    for x in fp:
        if x.splitlines()[0] in count:
            count[f"172.25.254.{x.splitlines()[0][11:]}"] += 1
#排序并打印出现频率前10
    sort_count = sorted(count.items(),key= lambda x:x[1],reverse=True)
    for j in range(10):
        print(f"第{j + 1}名")
        print(sort_count[j])


